#pragma once

#include <iostream>
#include <functional>
#include <vector>
#include <unordered_map>
#include <string>

using namespace std;

typedef std::function<void()> func_t;

// 任务数组
vector<func_t> vTack;

// 映射
unordered_map<int,string> dest;

void Tack1()
{
    std::cout<<"任务一"<<std::endl;
}

void Tack2()
{
    std::cout<<"任务二"<<std::endl;
}

void Tack3()
{
    std::cout<<"任务三"<<std::endl;
}

void Tack4()
{
    std::cout<<"任务四"<<std::endl;
}

void Tack5()
{
    std::cout<<"任务五"<<std::endl;
}

void LoadTack()
{
    dest.insert({vTack.size(),"任务一"});
    vTack.push_back(Tack1);

    dest.insert({vTack.size(),"任务二"});
    vTack.push_back(Tack2);

    dest.insert({vTack.size(),"任务三"});
    vTack.push_back(Tack3);

    dest.insert({vTack.size(),"任务四"});
    vTack.push_back(Tack4);

    dest.insert({vTack.size(),"任务五"});
    vTack.push_back(Tack5);
}

void ShowTack()
{
    for(auto &e:dest)
    {
        std::cout<<e.first<<":"<<e.second<<std::endl;
    }
}
